// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.

package com.neuronbit.businessflow.intellij.editor.swing.editor.propertyInspector.properties;

import com.neuronbit.businessflow.intellij.editor.swing.editor.RadComponent;


/**
 * The interface Align property provider.
 */
public interface AlignPropertyProvider {
    /**
     * Gets alignment.
     *
     * @param component  the component
     * @param horizontal the horizontal
     * @return the alignment
     */
    int getAlignment(RadComponent component, boolean horizontal);

    /**
     * Sets alignment.
     *
     * @param component  the component
     * @param horizontal the horizontal
     * @param alignment  the alignment
     */
    void setAlignment(RadComponent component, boolean horizontal, int alignment);

    /**
     * Reset alignment.
     *
     * @param component  the component
     * @param horizontal the horizontal
     */
    void resetAlignment(RadComponent component, boolean horizontal);

    /**
     * Is alignment modified boolean.
     *
     * @param component  the component
     * @param horizontal the horizontal
     * @return the boolean
     */
    boolean isAlignmentModified(RadComponent component, boolean horizontal);
}
